package com.smart.entity;

import lombok.Data;
import java.util.Date;
import java.util.List;
import java.io.Serializable;
import cn.hutool.core.date.DatePattern;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.SqlCondition;

/**
 * @author lgb
 * @date 2020年6月10日 上午9:09:38
 * Copyright (C) 深圳工勘科技
 * @说明: 角色管理
 **/
@Data
@TableName("sys_role")
public class SysRole implements Serializable{
	
	private static final long serialVersionUID = -3969828235545757456L;
	
	@TableId
    private Long id;
    /** 名称 */
    @ApiModelProperty(value = "名称")
    @TableField(condition = SqlCondition.LIKE)
    private String name;
    /** 角色权限 */
    @ApiModelProperty(value = "角色权限")
    @TableField(condition = SqlCondition.LIKE)
    private String roleKey;
    /** 数据范围（1：所有数据权限；2：自定义数据权限；3：本部门数据权限；4：本部门及以下数据权限）*/
    @ApiModelProperty(value = "数据范围")
    private String dataScope;
    /** 描述 */
    @ApiModelProperty(value = "描述")
    private String description;
    /** 后台用户数量 */
    @ApiModelProperty(value = "后台用户数量")
    private Integer adminCount;
    /** 创建时间 */
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = DatePattern.NORM_DATETIME_PATTERN, timezone = "GMT+8")
    private Date createTime;
    /** 启用状态：0->禁用；1->启用 */
    @ApiModelProperty(value = "启用状态：0->禁用；1->启用")
    private String status;
    /** 排序 */
    @ApiModelProperty(value = "排序")
    private Integer sort;
    /** 菜单组 */
    @TableField(exist = false)
    private List<Long> menuIds;
    /** 部门组（数据权限） */
    @TableField(exist = false)
    private Long[] deptIds;
    /** 开始时间 */
    @JsonIgnore
    @TableField(exist = false)
    private String beginTime;
    /** 结束时间 */
    @JsonIgnore
    @TableField(exist = false)
    private String endTime;
    
}